package dk.druidPro.dao;

import java.io.Serializable;
import java.util.List;

import dk.druidPro.pageModel.PageUtil;

/**
 * 泛型通用dao实现 依赖于spring jdbc
 *
 * User: liyd
 * Date: 2/12/14
 * Time: 2:34 PM
 */
public interface BaseDao<T> {


    /**
     * 插入一条记录
     *
     * @param entity
     */
    public Long insert(T entity) ;

    /**
     * 更新记录
     * 
     * @param entity
     */
    public void update(T entity) ;

    /**
     * 删除记录
     *
     * @param id
     */
    public void delete(Serializable id);

    /**
     * 删除所有记录
     */
    public void deleteAll();

    /**
     * 得到记录
     *
     * @param id
     * @return
     */
    public T getById(Serializable id);

    /**
     * 查询所有记录
     * 
     * @return
     */
    public List<T> findAll() ;

    /**
     * 查询记录数
     * 
     * @param entity
     * @return
     */
    public int queryCount(T entity) ;

    /**
     * 查询分页列表
     * 
     * @param entity
     * @return
     */
    public PageUtil queryPageList(T entity,PageUtil page);
    
}

